home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 5 / Amiga Tools 5.iso / grafik / 3d & render tools / irit / contrib / cagd / srfgeom / demo.irt < prev    next >
Encoding:
Text File  |  1996-07-16  |  3.8 KB  |  124 lines

  1. # otherwise ReadOnly memory write access protection fault occures on NT
  2. iritstate( "InterpProd", off );
  3. include("surfcore");
  4.  
  5. PlanarSurf = FUNCTION():
  6.     return = sbezier( list(
  7.     list( ctlpt( E3, 0.0, 0.0, 0 ),
  8.           ctlpt( E3, 0.0, 0.5, 0 ),
  9.           ctlpt( E3, 0.0, 1.0, 0 ) ),
  10.  
  11.     list( ctlpt( E3, 0.5, 0.0, 0 ),
  12.           ctlpt( E3, 0.5, 0.5,  0 ),
  13.           ctlpt( E3, 0.5, 1.0,  0 ) ),
  14.  
  15.         list( ctlpt( E3, 1.0, 0.0, 0 ),
  16.               ctlpt( E3, 1.0, 0.5,  0 ),
  17.           ctlpt( E3, 1.0, 1.0,  0 ) ) ) );
  18.  
  19. DemoSimpleSurf = FUNCTION():
  20.     return = sbezier( list(
  21.         list( ctlpt( E3, 0.3, 0.0, -0.3 ),
  22.               ctlpt( E3, 0.0, 0.2, -0.0 ),
  23.               ctlpt( E3, 0.0, 0.8, -0.0 ),
  24.               ctlpt( E3, 0.3, 1.0, -0.3 ) ),
  25.  
  26.         list( ctlpt( E3, 0.5, -0.3, 0.0 ),
  27.               ctlpt( E3, 0.5, 0.6, 0.6 ),
  28.               ctlpt( E3, 0.5, 0.4, 0.6 ),
  29.                   ctlpt( E3, 0.5, 1.3, 0.0 ) ),
  30.  
  31.             list( ctlpt( E3, 1.0, -0.3, 0.0 ),
  32.               ctlpt( E3, 1.0, 0.4, 0.6 ),
  33.               ctlpt( E3, 1.0, 0.6, 0.6 ),
  34.               ctlpt( E3, 1.0, 1.3, 0.0 ) ),
  35.  
  36.             list( ctlpt( E3, 1.5, 0.0, -0.3 ),
  37.               ctlpt( E3, 1.8, 0.2, -0.0 ),
  38.               ctlpt( E3, 1.8, 0.8, -0.0 ),
  39.               ctlpt( E3, 1.5, 1.0, -0.3 ) ) ) );
  40.  
  41. DemoSurf = FUNCTION():
  42.     return = sbezier( list(
  43.         list( ctlpt( E3, 0.0, 0.0, 0.0),
  44.               ctlpt( E3, -0.2, 0.2, 0.4 ),
  45.               ctlpt( E3, -0.2, 0.8, 0.4 ),
  46.               ctlpt( E3, 0.0, 1.0, 0.0) ),
  47.  
  48.         list( ctlpt( E3, 0.5, -0.2, 0.5 ),
  49.               ctlpt( E3, 0.5, 0.2, 0.9),
  50.               ctlpt( E3, 0.5, 0.8, 0.9),
  51.                   ctlpt( E3, 0.5, 1.2, 0.5 ) ),
  52.  
  53.             list( ctlpt( E3, 1.0, -0.2, -0.5 ),
  54.               ctlpt( E3, 1.0, 0.2, -0.1 ),
  55.               ctlpt( E3, 1.0, 0.8, -0.1 ),
  56.               ctlpt( E3, 1.0, 1.2, -0.5 ) ),
  57.  
  58.             list( ctlpt( E3, 1.5, 0.0, 0.0),
  59.               ctlpt( E3, 1.7, 0.2, 0.4 ),
  60.               ctlpt( E3, 1.7, 0.8, 0.4 ),
  61.               ctlpt( E3, 1.5, 1.0, 0.0) ) ) );
  62.  
  63. DemoCurve = FUNCTION():
  64.     return = pcircle( vector( 0.5, 0.5, 0.0 ), 0.4 );
  65.  
  66. RunSurfDomainDemo = PROCEDURE(): scene:
  67.     ShowCurvGeom(false, false):
  68.     ShowSurfGeom(true, false):
  69.     ShowSurfHodo(false, false):
  70.     showSurfDomain = true:
  71.     scene = SurfAndHodoScene():
  72.     printf("Demonstration of domain curve image in surface\\n", nil()):
  73.     view(scene, true): pause();
  74.  
  75. RepeatMovie = PROCEDURE(numOfSamples): step: scene: t:
  76.     scene = SurfAndHodoScene():
  77.     step = 1 / numOfSamples:
  78.     for (t=0, step, 1,
  79.     view(GeomAtParam(t) + GeomAtCurvParam(t) + scene, true)
  80.     );
  81.  
  82. RunMovie = PROCEDURE(surfDeriv, surfCrvtr, curvDeriv, curvCrvtr): scene:
  83.     showSurfDomain = false:
  84.     ShowSurfGeom(surfDeriv, surfCrvtr):
  85.     ShowCurvGeom(curvDeriv, curvCrvtr):
  86.     scene = SurfAndHodoScene():
  87.     view(scene, true):
  88.     printf("*** Make sure that you are ready to run movie ***\\n", nil()):
  89.     pause():
  90.     RepeatMovie(40);
  91.  
  92. RunHodographDemo = PROCEDURE(): scene:
  93.     printf("Surface hodographs demo (MOVIE)\\n", nil()):
  94.     ShowSurfHodo(true, true):
  95.     RunMovie(true, false, false, false);
  96.  
  97. RunSurfGeomDemo = PROCEDURE():
  98.     printf("Surface geometry: derivatives and curvatures demo (MOVIE)\\n", nil()):
  99.     ShowSurfHodo(false, false):
  100.     RunMovie(true, true, false, false);
  101.  
  102. RunCurvGeomDemo = PROCEDURE():
  103.     printf("Curve in surface geometry: derivatives and curvatures demo (MOVIE)\\n", nil()):
  104.     ShowSurfHodo(false, false):
  105.     RunMovie(false, false, true, true);
  106.  
  107. RunCurvAndSurfDemo = PROCEDURE():
  108.     printf("Curve in surface geometry with surface derivatives (MOVIE)\\n", nil()):
  109.     ShowSurfHodo(false, false):
  110.     RunMovie(true, false, true, true);
  111.  
  112. RunSurfAndCurvDemo = PROCEDURE():
  113.     printf("Surface geometry with curve derivatives (MOVIE)\\n", nil()):
  114.     ShowSurfHodo(false, false):
  115.     RunMovie(true, true, true, false);
  116.  
  117. CreateSurfDemo(DemoSurf(), DemoCurve());
  118. RunSurfDomainDemo();
  119. RunHodographDemo();
  120. RunSurfGeomDemo();
  121. view(GeomAtParam(0.013640) + SurfAndHodoScene(), true); # k2 inflection 
  122. RepeatMovie(50);
  123. RunCurvAndSurfDemo();
  124.